<?php

/**
 * Description of candidato
 *
 * @author Cleiviane
 */
jimport("joomla.application.model");
jimport('joomla.filesystem.file');

class SgrhFrontModelCandidato extends JModel {

    protected $dir = "components/com_sgrh/arquivos/";

    function salvar($dados, $tabela) {		
        $tabela = & $this->getTable($tabela);
        $tabela->bind($dados);
		if(!$tabela->check($dados)){
			$this->setError($tabela->getError());
			return false;
		}
		$tabela->store($dados);
        if ( $this->_db->_errorNum > 0) {
			$this->setError('Erro ao gravar cadastro. Favor procure o administrador so sistema');
			return false;
        }
		if ($tabela->_errors){
			$this->setError($tabela->getError());
			return false;
		}
        if($this->_db->_errorNum == 0)
            return $tabela;
    }
	
	public function apagar($id, $tabela){
		$tabela =& $this->getTable($tabela);
		$tabela->delete($id);
		return true;
	}
	
	public function apagarUser($id){
		$idUser = $this->getUser($id);
		$user =& JUser::getInstance((int)$idUser);
		$user->delete();
	}

	private function getUser($idPessoa){
		$sql = "SELECT idUser FROM #__okbuck_candidatopessoa WHERE id = {$idPessoa}";
		$this->_db->setQuery($sql);
		$resultado = $this->_db->loadResult();
		return $resultado;
	}
	
    public function registrarUsuario($dados) {
        jimport('joomla.user.helper');
        global $mainframe;
        // Initialize some variables
        $acl = & JFactory::getACL();
        // Create a new JUser object
        $user = new JUser();
        // Bind the post array to the user object
        if (!$user->bind(JRequest::get('post'), 'usertype')) {
            JError::raiseError(500, $user->getError());
        }
        // Set some initial user values
        $user->set('name', $dados['nome']);
        $user->set('usertype', 'Registered');
        $user->set('gid', 18);
        $user->set('sendEmail', 0);
        $user->set('activation', JUtility::getHash(JUserHelper::genRandomPassword()));
        $user->set('block', '0');
        /*
         * Lets save the JUser object
         */
        if ($dados['idUser'] != 0) {
            $user->set('id', $dados['idUser']);
            if (!$user->save(true)) {
                $this->setError('Informação não salva.');
                return false;
            }
        } else {
            $user->set('id', 0);
            if (!$user->save()) {
                $this->setError('Informação não salva.:' . $user->getError());
                return false;
            }
        }
        return $user->id;
    }

    public function gravaArquivo($arquivo, $usuario) {
        $tipo = explode('/', $imagem['type']);
        if ($arquivo['error'] == 0) {
            $formato = array_reverse(explode('.', $arquivo['name']));
            $formato = $formato[0];
            $arquivo['name'] = "{$usuario}.{$formato}";
            $this->dir = JPATH_SITE . DS . $this->dir;
            $path = JFolder::exists($this->dir);
            if (!$path) {
                $criaDiretorio = JFolder::create($this->dir);
                $file = JFile::upload(JPATH_SITE . DS . 'tmp' . DS . 'index.html', $this->dir . 'index.html');
                if ($criaDiretorio) {
                    $path = JFolder::exists($this->dir);
                } else {
                    $this->setError('Erro ao criar o diretório');
                    return false;
                }
            }
            if ($path) {
                $src = $arquivo['tmp_name'];
                $destino = $this->dir . $arquivo['name'];
                $file = JFile::upload($src, $destino);
                if (!$file) {
                    $this->setError('Erro ao gravar o arquivo');
                    return false;
                }
            }
        }
        return "com_sgrh/arquivos/".$arquivo['name'];
    }

    function getLista($idPessoa, $tabela, $campo = 'idPessoa') {
        $sql = "SELECT * FROM #__okbuck_{$tabela} WHERE {$campo} = {$idPessoa}";
        $this->_db->setQuery($sql);
        $result = $this->_db->loadObjectList();
        return $result;
    }
    
    function getDados($idPessoa, $tabela) {
        $sql = "SELECT * FROM #__okbuck_{$tabela} WHERE idPessoa = {$idPessoa}";
        $this->_db->setQuery($sql);
        $result = $this->_db->loadObject();
        return $result;
    }
	
	function getInfoPessoal($idPessoa) {
        $sql = "SELECT p.*, u.username FROM #__okbuck_candidatopessoa as p INNER JOIN #__users as u ON u.id = p.idUser WHERE p.id = {$idPessoa}";
        $this->_db->setQuery($sql);
        $result = $this->_db->loadObject();
        return $result;
    }

	function alteraDados($tabela, $idPessoa, $dados){
		$sql = "UPDATE * FROM #__okbuck_{$tabela} WHERE idPessoa = {$idPessoa}";
	}
	public function verificaCPF($cpf){
		if(!is_numeric($cpf)) {
			$this->setError("CPF inválido");
			return false;
		}
		else {
			if( ($cpf == '11111111111') || ($cpf == '22222222222') ||
			($cpf == '33333333333') || ($cpf == '44444444444') ||
			($cpf == '55555555555') || ($cpf == '66666666666') ||
			($cpf == '77777777777') || ($cpf == '88888888888') ||
			($cpf == '99999999999') || ($cpf == '00000000000') ) {
				$this->setError("CPF inválido");
				return false;
			}
			else {
				$validador = substr($cpf, 9,2);
				for($i=0; $i<=8; $i++) {
					$digito[$i] = substr($cpf, $i,1);
				}
				$posicao = 10;
				$soma = 0;
				for($i=0; $i<=8; $i++) {
					$soma = $soma + $digito[$i] * $posicao;
					$posicao = $posicao - 1;
				}
				$digito[9] = $soma % 11;
				if($digito[9] < 2) {
					$digito[9] = 0;
				}
				else {
					$digito[9] = 11 - $digito[9];
				}
				$posicao = 11;
				$soma = 0;
				for ($i=0; $i<=9; $i++) {
					$soma = $soma + $digito[$i] * $posicao;
					$posicao = $posicao - 1;
				}
				$digito[10] = $soma % 11;
				if ($digito[10] < 2) {
					$digito[10] = 0;
				}
				else {
					$digito[10] = 11 - $digito[10];
				}
				$dv = $digito[9] * 10 + $digito[10];
				if ($dv != $validador) {
					$this->setError("CPF inválido");
					return false;
				}
				else
					return true;
			}
		}
	}
	function getInfoUser($idUser) {
        $sql = "SELECT p.*, u.username FROM #__okbuck_candidatopessoa as p INNER JOIN #__users as u ON u.id = p.idUser WHERE p.idUser = {$idUser}";
        $this->_db->setQuery($sql);
        $result = $this->_db->loadObject();
        return $result;
    }
}

?>
